package com.rentplant.mapper;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.rentplant.Pojo.item;
import com.rentplant.Pojo.itemanduser;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper  //申明作为底层交互
@Repository
public interface itemMapper {

//    发布物品
    public  boolean addItem(JSONObject itemInfo);

//    查询当前openid发布物品
    public List<item> selectItem(String openid);

//    保存草稿
    public boolean saveItem(JSONObject itemInfo);

//    更新物品信息
    public boolean updateItem(JSONObject itemInfo);

//    按照物品id查询
    public List<item> selectItemById(String itemid);

//    展示主页商品
    public List<itemanduser> showIndexItem();

//    展示商品详情
    public List<itemanduser> selectItemByItemId(String itemid);

//    浏览量加一
    public boolean updateSeeNum(String itemid);

//    查询类型的物品
    public List<itemanduser> showTypeItem(String itemtype);

//    展示物品类型 的综合排序
    public List<itemanduser> showAllItem(String itemtype);

//    按照条件查询最新物品
    public List<itemanduser> selectItemByNew(JSONObject iteminfo);

//    按照条件查找销量高物品
    public List<itemanduser> selectItemByHot(JSONObject iteminfo);

//    物品按价格降序
    public List<itemanduser> selectItemByUp(JSONObject iteminfo);

    //物品按照价格升序
    public List<itemanduser> selectItemByDown(JSONObject iteminfo);




//    按照itemid查找物品信息以及发布者信息
    public List<itemanduser> itemAndUser(JSONObject iteminfo);

    //查询用户发布的物品
    public List<item>showUserItem(JSONObject iteminfo);

    //查询用户未发布物品信息
    public  List<item> showNoSubItem(JSONObject iteminfo);

//    查询用户已删除的物品
    public List<item>haveDelItem(JSONObject iteminfo);

//    重新上架物品
    public boolean renewItem(JSONObject iteminfo);

    //删除已发布物品
    public boolean delHaveItem (JSONObject iteminfo);

    //发布草稿物品
    public boolean addNoItem(JSONObject iteminfo);

    //删除用户草稿
    public boolean delItem(JSONObject iteminfo);

//    租用物品后物品改为租用中
    public boolean rentitem(JSONObject iteminfo);

//    增加出租次数
    public boolean addrenttimes(JSONObject iteminfo);






    //查找用户的搜索结果
    public List<itemanduser> showSelectResult(String searchinfo);

    //用户查找按价格最高
    public List<itemanduser> showSelectByTop(String searchinfo);

    //用户查找按价格最低
    public List<itemanduser> showSelectByLow(String searchinfo);

    //用户查找销量最高
    public List<itemanduser> showSelectBySale(String searchinfo);

    //用户查找最新
    public List<itemanduser> showSelectByNew(String searchinfo);

    //用户查找最热
    public List<itemanduser> showSelectByHot(String searchinfo);






//    物品管理页面
//    渲染全部商品
    public List<item> allItem(JSONObject pageInfo);

    //查询全部物品
    public List<item> allItems();

//    修改物品信息
   public boolean updateItemInfo(JSONObject iteminfo);

//    按条件查找
    public List<item> searchItem(JSONObject searchInfo);

    //    按条件查找
    public List<item> searchItems(JSONObject searchInfo);





}
